/**
 * 已知一队的胜率是p，问出现让二追三的概率是多少。
 * 有两种情况，加起来即可
 */
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;

template<typename T>
void input(vector<T> & v, int n){
	v.assign(n + 1, {});
	for(int i=1;i<=n;++i) cin >> v[i];
	return;
}

using Real = long double;
using llt = long long;
using vi = vector<int>;
using pii = pair<int, int>;

void work(){
    Real p; cin >> p;
	auto ans = (1 - p) * (1 - p) * p * p * p;
	auto tmp = p * p * (1 - p) * (1 - p) * (1 - p);
	cout << fixed << setprecision(12) << ans + tmp << endl;
	return;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	int nofkase = 1;
    // cin >> nofkase;
    while(nofkase--) work();
    return 0;
}